Non-volatile memory systems, such as flash memory, are used in digital computing systems as a means to store data and have been widely adopted for use in consumer products. Flash memory may be found in different forms, for example in the form of a portable memory card that can be carried between host devices or as a solid state disk (SSD) embedded in a host device.
Programming of data into the flash memory takes a certain amount of time. To more efficiently program the flash memory, a large number of memory cells are programmed at the same time. In this way, parallel programming of the flash memory improves its performance and enables the flash memory to achieve high write speed.